#include<iostream> 
using namespace std;
typedef long long LL;
const int N = 5e4 + 10;
LL a[N];
LL l, m, n;
int main()
{
	cin >> l >> n >> m;
	if(n == m)
	{
		cout << l << endl;
		return 0;
	}
	for(int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	a[n + 1] = l;
	n++;
	LL left = 1, right = l;
	while(left < right)
	{
		LL mid = left + (right - left + 1) / 2;
		LL ret = 0;
		int i;
		for(i = 0; i <= n; i++)
		{
			int j = i + 1;
			while(j <= n && a[j] - a[i] < mid) j++;
			
			ret += j - i - 1;
			i = j - 1;
		}

		if(ret <= m) left = mid;
		else right = mid - 1;
	}
	cout << left << endl;
	return 0;
}
